//练习,100张票三人卖
public class WindowTest1 extends Thread {
	private static int ticket = 100;
	@Override
	public void run() {
		while (true) {
				if (ticket <= 0) {
					return;
				}
				getTicket();
		}
	}
	private static void getTicket() {
		if(ticket==0) return;
		System.out.println(Thread.currentThread().getName() + "-->售出第：" + (101 - ticket) + "票");
		ticket--;
		try {
			sleep(100);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		WindowTest1 wt1 = new WindowTest1();
		WindowTest1 wt2 = new WindowTest1();
		WindowTest1 wt3 = new WindowTest1();
		wt1.start();
		wt2.start();
		wt3.start();
		//线程安全问题:同一个时间，多个线程访问（修改）同一个对象，造成结果不可预测（混乱）
		//线程安全问题的条件：1.同一时间、2.多个线程一起访问、3操作的是同一个对象
		/*输出的部分结果：
		 * Thread-1-->售出第：1票 
		 * Thread-0-->售出第：1票 
		 * Thread-2-->售出第：1票 
		 * Thread-1-->售出第：4票
		 * Thread-2-->售出第：4票 
		 * Thread-0-->售出第：4票 
		 * Thread-1-->售出第：7票 
		 * Thread-2-->售出第：7票
		 * Thread-0-->售出第：7票
		 */
	}
}


